package cn.edu.java.stream.特殊流;

import java.util.Arrays;
import java.util.IntSummaryStatistics;
import java.util.stream.IntStream;

public class IntStreamDemo {
    public static void main(String[] args) {
        // 创建一个整数流
        int[] numbers = {1, 2, 3, 4, 5};

        // 所有元素的和
        int sum = Arrays.stream(numbers)
                .sum();
        System.out.println("总和：" + sum);

        // 所有元素的平均值
        double average = Arrays.stream(numbers)
                .average()
                .orElse(0);
        System.out.println("平均值：" + average);

        // 最大值和最小值
        int max = Arrays.stream(numbers)
                .max()
                .orElse(0);
        System.out.println("最大值：" + max);

        int min = Arrays.stream(numbers)
                .min()
                .orElse(0);
        System.out.println("最小值：" + min);

        // 元素的个数
        long count = Arrays.stream(numbers)
                .count();
        System.out.println("个数：" + count);

        // 过滤并打印偶数
        System.out.print("偶数：");
        Arrays.stream(numbers)
                .filter(n -> n % 2 == 0)
                .forEach(n -> System.out.print(n + " "));
        System.out.println();

        // 映射并计算元素的平方和
        int sumOfSquares = Arrays.stream(numbers)
                .map(n -> n * n)
                .sum();
        System.out.println("平方和：" + sumOfSquares);

        // 汇总统计（个数、总和、最小值、最大值、平均值）
        IntSummaryStatistics stats = Arrays.stream(numbers)
                .summaryStatistics();
        System.out.println("统计信息：" + stats);
    }
}

